export default {
    data() {
        return {
            // 外部传入
            appWindow: null,
            // 外部传入
            apiConfig: null,
            // 页面接口地址
            apiUrl: {
                list: null,
            },
            selectIds: [],
            // 不可选择的ids
            cannotSelectIds: [],
            // 不可用的数据
            disabledSelectList: {
                // ID32: "【不可用1】",
            },
        };
    },
    computed: {
        selectObject() {
            let _l = {};
            this.selectIds.forEach((item, index) => {
                _l["ID" + item] = {
                    index: index,
                };
            });
            return _l;
        },
    },
    methods: {
        // 初始化
        async init() {
            this.boxVisible = true;
            // 显示窗口
            await this.getData();
            console.error("cannotSelectIds",this.cannotSelectIds)

            if (!this.$vFN.Utils.isEmpty(this.cannotSelectIds)) {
                let _d = {}
                this.cannotSelectIds.forEach(item => {
                    _d["ID"+item] = "不可选"
                })
                this.disabledSelectListPush(_d);
            }


        },
        // 追加不可选的数据
        disabledSelectListPush(_d) {
            this.disabledSelectList = {
                ...this.disabledSelectList,
                ..._d,
            }

        },
        async getData() {
            // 显示窗口
           await this.mixinList_refreshData();
        },
        submit() {
            let _data = [...this.selectIds];
            if (_data.length <= 0) {
                this.$vFN.Tools.messageError("请选择商品");
                return;
            }
            console.error("_data", _data)
            this.editBoxClose();
            this.onSuccess(_data);
        },
        // 成功回调
        onSuccess() {},
        // 取消回调
        onCancel() {},
        // 失败回调
        onError() {},
        // 关闭窗口
        editBoxClose() {
            this.boxVisible = false;
        },
        // 取消
        editBoxCancel() {
            this.editBoxClose();
        },
        // 是否禁止选择
        isDisabledSelect(_id) {
            let _d = this.disabledSelectList["ID" + _id];
            if (_d) {
                return _d
            } else {
                return false
            }
        },
        // 选择数据
        selectItem(_id) {
            console.error(_id);
            // 不可选商品
            if (this.isDisabledSelect(_id)) {
                this.$vFN.Tools.messageError(this.isDisabledSelect(_id));
                return;
            }
            let _arr = [...this.selectIds];
            let _sub = this.selectObject["ID" + _id];



            // 判断是选择还是取消 如果是取消 则直接取消
            if (_sub) {
                _arr.splice(_sub.index, 1);
            }
            // 如果只能选一个则切换已选项目
            else if (this.count == 1) {
                _arr = [_id]
            }
            // 如果限制了选择数量则提示
            else if (this.count >= 0) {
                // 判断曾经选择的数量是否超出最大数量
                if (this.count <= this.selectIds.length) {
                    this.$vFN.Tools.messageError(
                        "最多选择" + this.count + "个！"
                    );
                    return;
                }
                _arr.push(_id);
            } else {
                _arr.push(_id);
            }
            this.selectIds = _arr
        },
        isSelected(_id) {
            return this.selectObject["ID" + _id] ? true : false;
        },

    },
}